/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package seminario.bean;

import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import seminario.entidade.Usuario;
import seminario.rn.UsuarioRN;
import seminario.util.BeanUtil;

/**
 *
 * @author bpmlab
 */
@ManagedBean
@RequestScoped
public class UsuarioBean {
    
    private final UsuarioRN rn = new UsuarioRN();
    private Usuario usuario = new Usuario();
    private List<Usuario> usuarios;
    private boolean secretaria;
    private boolean participante;

    public void salvar() {
        if (rn.salvar(usuario)) {
            BeanUtil.mensagem(FacesMessage.SEVERITY_INFO, "Sucesso! O usuário foi cadastrado!");
        } else {
            BeanUtil.mensagem(FacesMessage.SEVERITY_FATAL, "Erro! Não foi possivel cadastrar o usuário");
        }
    }
    
    public String cadastrar() {
        usuario.setPerfil('P');
        if (rn.salvar(usuario)) {
            BeanUtil.mensagem(FacesMessage.SEVERITY_INFO, "Sucesso! O usuário foi cadastrado!");
            return "login";
        } else {
            BeanUtil.mensagem(FacesMessage.SEVERITY_FATAL, "Erro! Não foi possivel cadastrar o usuário");
            return null;
        }
    }
    
    public void remover() {
        if (rn.remover(usuario)) {
            BeanUtil.mensagem(FacesMessage.SEVERITY_INFO, "Sucesso! O usuário foi removido!");
        } else {
            BeanUtil.mensagem(FacesMessage.SEVERITY_FATAL, "Erro! Não foi possivel remover o usuário");
        }
    }

    public String autenticar() {
        usuario = rn.obterPorLoginEPorSenha(usuario);
        if (usuario == null) {
            BeanUtil.mensagem(FacesMessage.SEVERITY_ERROR, "Erro! Login ou Senha estão inválidos");
            return null;
        } else {
            BeanUtil.colocarNaSessao("usuarioLogado", usuario);
            BeanUtil.mensagem(FacesMessage.SEVERITY_INFO, "Sucesso! Bem Vindo " + usuario.getNome());
            return "index";
        }
    }

    public String deslogar() {
        BeanUtil.removerDaSessao("usuarioLogado");
        return "login";
    }
    
    public List<Usuario> getUsuarios() {
        usuarios = rn.obterTodos();
        return usuarios;
    }

    public boolean isSecretaria() {
        secretaria = BeanUtil.isSecretaria();
        return secretaria;
    }

    public boolean isParticipante() {
        participante = BeanUtil.isParticipante();
        return participante;
    }
    
    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }
    
}
